#ifndef CAMERA_CONFIG_OBJ_H
#define CAMERA_CONFIG_OBJ_H

#include <string>
#include <vector>

class BaseConfig
{
  public:
    enum class item_type {I_LONG=0,I_DOUBLE,I_STRING,I_LIST,I_BOOL};
    struct item
    {
      int id;
      std::string describe;
      item_type type;
      bool readonly;
    };
    virtual std::vector<item> ItemList()=0;
    virtual bool Get(int id,std::string& value)=0;
    virtual bool Get(int id,long& value)=0;
    virtual bool Get(int id,double& value)=0;
    virtual bool Get(int id,bool& value)=0;
    virtual bool Set(int id,const std::string& value)=0;
    virtual bool Set(int id,const long& value)=0;
    virtual bool Set(int id,const double& value)=0;
    virtual bool Set(int id,const bool& value)=0;
};

#endif
